﻿'''' <summary>
'''' Métodos essenciais para a criação de classes de regra de negócio.
'''' </summary>
'''' <remarks></remarks>

'Public Interface IModel(Of T)

'    ''' <summary>
'    ''' Salvar entidade no banco de dados
'    ''' </summary>
'    ''' <param name="entity">Objeto derivado da classe de Modelo</param>
'    ''' <returns>
'    ''' Retorno: 
'    '''  True - > Salvo com sucesso.
'    '''  False -> Não salvo, pode ter ocorrido algum erro, 
'    ''' utilize Breakpoint e Watch para verificar as excessões 
'    ''' geradas no método.
'    ''' </returns>
'    ''' <remarks></remarks>
'    Function Save(ByVal entity As T) As Boolean

'    ''' <summary>
'    ''' Exclui entidade no banco
'    ''' </summary>
'    ''' <param name="entity">Objeto derivado da classe de Modelo</param>
'    ''' <returns>
'    ''' Retorno:
'    '''  True -> Removido com sucesso.
'    '''  False -> Falha ao salvar, verifique com Breakpoints e Watchs
'    ''' as excessões geradas.
'    ''' </returns>
'    ''' <remarks></remarks>
'    Function Delete(ByVal entity As T) As Boolean

'    ''' <summary>
'    ''' Retorna lista de dados
'    ''' </summary>
'    ''' <returns>Lista do tipo IList(Of Modelo)</returns>
'    ''' <remarks></remarks>
'    Function GetAll() As IList(Of T)

'    ''' <summary>
'    ''' Carrega uma linha de dados do banco segundo o Id
'    ''' </summary>
'    ''' <param name="id">Objeto derivado da classe de Modelo</param>
'    ''' <returns>Retorna um objeto do tipo da classe de modelo</returns>
'    ''' <remarks></remarks>
'    Function GetById(ByVal id As T) As T
'End Interface
